package com.lqk.principle.singleresponsibility;

/**
 * @author lqk
 * @date 2021/11/24 20:48
 */
public class SingleResponsibility2 {
    public static void main(String[] args) {
        RoadVehicle roadVehicle = new RoadVehicle();
        roadVehicle.run("汽车");
        roadVehicle.run("摩托车");
        AirVehicle airVehicle = new AirVehicle();
        airVehicle.run("飞机");
    }
}

/**
 * 方案2 分析
 * 1. 遵守单一职责原则
 * 2. 但是这样做改动很大，即将类分解，同时修改客户端
 * 3. 改进：直接修改Vehicle类，改动的代码会比较少=> 方案三
 */
class RoadVehicle{
    public void run(String vehicle){
        System.out.println(vehicle + "在公路上跑。。。。");
    }
}
class AirVehicle{
    public void run(String vehicle){
        System.out.println(vehicle + "在天空飞行。。。。");
    }
}
class WaterVehicle{
    public void run(String vehicle){
        System.out.println(vehicle + "在水中航行。。。。");
    }
}
